Schedule

Schedule

Sunday, September 21

1411322400 The Tech Guy
1411336800 This Week in Tech

Monday, September 22

1411405200 Tech News Today
1411408800 Triangulation
1411414200 iPad Today
1411426800 Tech News 2Night
1411428600 Marketing Mavericks

Tuesday, September 23

1411491600 Tech News Today
1411495200 MacBreak Weekly
1411502400 Security Now
1411509600 Before You Buy
1411513200 Tech News 2Night
1411516800 All About Android
1411525800 Padre's Corner

Wednesday, September 24

1411572600 FLOSS Weekly
1411578000 Tech News Today
1411581600 Windows Weekly
1411588800 This Week in Google
1411599600 Tech News 2Night
1411601400 redditUP
1411606800 Ham Nation

Thursday, September 25

1411664400 Tech News Today
1411668000 Know How...
1411671600 The Social Hour
1411677000 Coding 101
1411680600 Home Theater Geeks
1411686000 Tech News 2Night
1411687800 The Giz Wiz
1411696800 OMGcraft

Friday, September 26

1411750800 Tech News Today
1411754400 This Week in Law
1411761600 Android App Arena
1411772400 Tech News 2Night

Saturday, September 27

1411840800 The Tech Guy

Sunday, September 28

1411927200 The Tech Guy
1411941600 This Week in Tech

Monday, September 29

1412010000 Tech News Today
1412013600 Triangulation
1412019000 iPad Today
1412031600 Tech News 2Night
1412033400 Marketing Mavericks

Tuesday, September 30

1412096400 Tech News Today
1412100000 MacBreak Weekly
1412107200 Security Now
1412114400 Before You Buy
1412118000 Tech News 2Night
1412121600 All About Android
1412130600 Padre's Corner

Wednesday, October 1

1412177400 FLOSS Weekly
1412182800 Tech News Today

Most Recent Episodes

The Tech Guy
The Tech Guy 1119 September 20th, 2014

Where is the best place to buy a gaming PC?

Tech News 2Night

Selling Drugs on Instagram

This Week in Law

Did the FBI sleuth or hack to find the location of the Silk Road server?

Android App Arena
Episode #13: Material Design September 19th, 2014

Hands-on reviews of Reddit News, Today Calendar, Wally and Hangouts Dialer.

TWiT Live Specials
Episode #207: iPhone 6 Unboxing September 19th, 2014

Leo unboxes a brand new iPhone 6.

Tech News Today

The launch of the iPhone 6 and iPhone 6 Plus was greeted by long lines and widespread shortages.

This Week in Computer Hardware

New Moto X, GTX 980 leaks, and people raving regarding the iPhone 6.

The Giz Wiz
Episode #1486: No Potato Rotato September 18th, 2014

Capresso, self centering measuring tape, cut resistant gloves.

Home Theater Geeks
Episode #224: CEDIA 2014 Round-Up September 18th, 2014

Scott, Michael, Mark and Tom recap the CEDIA 2014 expo.

OMGcraft

A brand new multi-genre map from qmagnet and his team.

Coding 101 32

C# Abstract Classes and Interfaces

August 28 2014

Hosts: Fr. Robert Ballecer, SJ and Shannon Morse

Guest: Lou Maresca

The Code for today's show is available at our: Github

Snubs Compiled
No Viewer Submitted Code, however we did get some useful tips for C# from our community:

Cosmic Ray links us to a C# Fundamentals series that's super useful for newbies!

Nathan says learning the syntax of the languages is great, but you need to know how to problem solve!

Kelvin links us to Mono, for Mac users

Joe gives us info on how to get C# running via notepad!

Ivory Tower
Interfaces, Classes, & Abstract Classes

Remember from last week that "Classes" are blueprints
- They are a collection of Methods, variables, properties and events
- Classes DO NOT EXIST until they are created (i.e. the difference between having a blueprint and the building built from those blueprints)
- When an instance of a class is "created" -- and "object" is born

Declaring a Class
public class C101

{

//Fields, methods, properties, events
// everything in the "blue print" goes in here

}

Creating an OBJECT of a class:
C101 object1 = new C101();

** One of the topics that was covered towards the end of our "Code Warrior" section last week, was the idea of inheritance.
-- You can make new classes that inherit their members from another class, with derrivations from the original class.

Inheriting from a class
public class Module4 : C101

{

//Fields, methods, properties, events
//everything in the ""blue print"" goes in here

}

** However, there's another way to do that... another way that perhaps is MORE suited for inheritance and derrivation than a class... an ABSTRACT CLASS

Now let's talk about "Abstract Classes"
* If classes are blueprints --- things that are ready to create --- to turn into objects, then "ABSTRACT Classes" are architectural designs.
-- They have the right shape of the thing to be created
-- They have much of the information needed to create the thing being created
-- But they are not complete
-- They cannot be instantiated - (They cannot not be "created" into an object)

* The sole purpose of an abstract class is to act as a "base" for inheritance
-- They cannot be instantiated, but a derrivative class, which inherits the abstract members from the abstract class, can be.
-- That derrivative class must provide proper implementation for all the abstract members of the abstract class, then it CAN create an object. (It complete's the blueprints)

Declaring an abstract class
public abstract class C101

{

//Fields, methods, properties, events
//everything in the ""blue print goes in here

public abstract void menu()

{

}

}

Inheriting from an abstract class
public class Module4 : C101

{

public void menu()

{

Console.WriteLine("This is a Menu");

}

}

* The inherited class from C101 MUST provide implementation for any abstract members within that class.

A few things about Abstract Classes:
1. They are created with the keyword "abstract"
2. They are incomplete and therefore CANNOT be instantiated. (an object cannot be created from the class)
3. Abstract classes and incomplete, and therefore can only be used as a base class
4. Non-abstract classes that are derived from abstract classes MUST provide proper implementation for any abstract members that are inherited from the abstract class.

Why have an Abstract Class?
* Abstract classes ENFORCE a particular hierarchy - They FORCE those who are inheriting from the class to code in a particular way to complete implementation.
* Abstract classes give us "parent" classes from which we can derive objects with customized implementation
* Going back to the blueprint:
-- An abstract class can give us the overview of what an object should look like, but then each derrivative class can implement the pieces of the abstract class as then need to be to best suit function

Let's talk about an Interface
* An Interface is like an Abstract class in that it can be used to define hierarchies for any sub-classes
* Unlike an Abstract Class, an Interface has NO body.
-- It's just the definitions of methods, with no body whatsoever.

Get in Touch With Us!

* Subscribe and get Coding 101 automatically at TWiT.tv!
* Follow PadreSJ and Snubs on Twitter.
* Watch the show live and join the chatroom every Thursday at 1:30pm PST.
* Email us at Padre@twit.tv and Shannon@twit.tv.
* Join our Google+ Community!
* Check out our transcripts.